package qc.module.demo.api.controller;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.Pictures;
import com.deepoove.poi.data.Texts;
import com.deepoove.poi.data.style.Style;
import qc.module.demo.dto.powerplant.PlantRealDataDto;
import qc.module.demo.dto.powerplant.YzhDynamoRealDataDto;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @projectName: qcdp
 * @package: qc.module.demo.api.controller
 * @className: PoiTLExampleController
 * @version: 1.0
 */
public class PoiTLExampleController {

    public static void main(String[] args) throws IOException {

        //存放要填充的数据
        Map<String, Object> datas = new HashMap<String, Object>();


        //1.设置一些通用样式
        Style style = Style.builder().buildFontSize(12).buildColor("000000").build();//字体大小、颜色

        //添加填充内容
        datas.put("项目名称", Texts.of("觉巴水电厂水情自动测报系统现场实施情况记录单").create());
        datas.put("实施日期", Texts.of("2018年08月29日至2018年09月10日").style(style).create());
        datas.put("客户单位", Texts.of("西藏开发投资集团有限公司觉巴水电厂").style(style).create());
        datas.put("参与实施人员", Texts.of("起华、赵家超、张倩、周志明").style(style).create());
        datas.put("实施内容", Texts.of("1.水情中心站建设；\n" + "2.流量监测站建设；\n" + "3.监控系统数据接入水情系统；").style(style).create());
        datas.put("实施情况", Texts.of("1.2018年8月29日，施工人员组织进场，并将所有水情测报系统设备运抵觉巴水电厂。接受了电厂组织的入场安全培训，取得项目施工工作票。同电站工作人员对到货设备开箱验收，并签字确认。与业主工作人员踏勘施工现场，对设备具体安装位置、布线进行确认。\n" +
                        "2.2018年8月30日，水情中心站设备安装（主要包含：1个服务器机柜、3台服务器、2台交换机、1台方向型隔离设备、1台正玄波逆变电源等），水情中心站建设电站厂房高压室内。\n" + "3.2018年8月31日，完成了水情中心站通讯线路和供电线路布线、接线、通讯测试、设备供电等工作。\n" + "4.2018年9月7日至2018年9月8日，在水情中心站部署了短信接收软件，短信猫通讯卡号：17888056021。 对水情中心站和流量监测站进行整体调试，中心站系统运行稳定、流量监测站采集报送的水情数据准确。\n" +
                        "5.2018年9月9日，使用走航式ADCP测流仪对流量监测站水位流量关系曲线进行率定。\n" + "6.2018年9月10日，水情测报系统使用、维护培训。对电厂工作人员进行了水情测报系统各功能模块使用培训、日常维护培训。")
                .style(style).create());
        datas.put("存在问题", Texts.of("1.觉巴水电厂通过调度数据网上传的水雨情数据暂时未与西藏区调进行数据通讯联调，经协调，西藏区调水调系统主站厂家（技术人员）于9月底会到西藏区调现场，到时候我方通过远程连接到觉巴水电厂水情中心站，配合西藏区调完成对觉巴水电厂上传的水雨情数据进行联调。我方已经在觉巴水电厂水情中心站完成了远程配置。")
                .style(style).create());

        //图片---替换图片不改变图片原有格式
        datas.put("签名", Pictures.ofLocal("D:/data/template/images/签名.png")
                .create());

         //图片 file:/// 前缀来指明这是一个本地文件路径。 添加图片手动设置图片格式
        datas.put("签名", Pictures.ofUrl("file:///D:/data/template/images/签名.png")
                .size(100, 100).create());

        //签名日期
        datas.put("签名日期", Texts.of("2018年08月29日").style(style).create());

        //模板地址
        String templateFilePath = "d://data//template//";
        //生成文件的保存地址
        String destFilePath = "d://data//template//";
        
        //传入对象渲染
        YzhDynamoRealDataDto yzhDynamoRealDataDto = new YzhDynamoRealDataDto();
        yzhDynamoRealDataDto.setCapacity(1234);
        PlantRealDataDto plantRealDataDto =new PlantRealDataDto();
        plantRealDataDto.setStation(yzhDynamoRealDataDto);

        // 获取模板中的所有标签
        XWPFTemplate compile = XWPFTemplate.compile(templateFilePath + "实施情况记录单.docx");
        //compile.render(datas);
        compile.render(plantRealDataDto);
        

        //输出为文件，指定输出文件名
        compile.writeToFile(destFilePath + "觉巴水电厂水情自动测报系统现场实施情况记录单.docx");

    }
}
